package com.breaker.kata.leetcode;

public class PlusOne {

    public int[] plusOne(int[] digits) {
        for (int i = digits.length - 1; i >= 0; i--) {
            int num = digits[i];
            if (num + 1 < 10) {
                digits[i] = num + 1;
                return digits;
            }
            digits[i] = 0;
            if (i == 0) {
                return addHeader(digits);
            }
        }
        return digits;
    }

    private int[] addHeader(int[] digits) {
        int[] newDigits = new int[digits.length + 1];
        newDigits[0] = 1;
        for (int i = 1; i < newDigits.length; i++) {
            newDigits[i] = 0;
        }
        return newDigits;
    }
}
